package com.yls.except.filter;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

/**
 * 读取敏感词配置文件
 * @author xusheng
 * @time 2015-7-8 上午9:41:11   
 * @version 1.0
 * @Description:  {}
 *
 */
public class PropertiesUtil {
	static Properties props = new Properties();
	static String classpath = Thread.currentThread().getContextClassLoader().getResource("/").getPath();  
	static String str = classpath + "FilterKeywords.properties";
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public static Map readProperties() {  
	    Map map = new HashMap();
	    try {  
	        File file=new File(str);  
	        InputStream in=new FileInputStream(file);  
	        props.load(in);  
	        Enumeration en = props.propertyNames();  
	        while (en.hasMoreElements()) {  
	            String key = (String) en.nextElement();  
	            String value = props.getProperty(key);  
	            map.put(key, value);//把properties文件中的key-value存放到一个map中  
	        }  
	        return map;  
	    } catch (Exception e) {  
	        e.printStackTrace();  
	    }  
	    return null;  
	}
	public static void addvalue(String value,String key) {
    	try {   
            // 调用 Hashtable 的方法 put，使用 getProperty 方法提供并行性。   
            // 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。   
            OutputStream fos = new FileOutputStream(str);
            props.setProperty(key, value);   
            // 以适合使用 load 方法加载到 Properties 表中的格式，   
            // 将此 Properties 表中的属性列表（键和元素对）写入输出流   
            props.store(fos, "Update '" + value + "' value");   
        } catch (IOException e) {   
            System.err.println("属性文件更新错误");
        }
    }
}
